package com.heima.article.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.model.article.dtos.ArticleDto;
import com.heima.model.article.dtos.ArticleHomeDto;
import com.heima.model.article.dtos.ArticleInfoDto;
import com.heima.model.article.mess.ArticleVisitStreamMess;
import com.heima.model.article.pojos.ApArticle;
import com.heima.model.common.dtos.PageResponseResult;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.mess.UpdateArticleMess;
import com.heima.model.wemedia.dtos.StatisticsDto;

import java.util.Date;
import java.util.Map;

public interface ApArticleService extends IService<ApArticle> {

    /**
     * 根据参数加载文章列表
     *
     * @param dto
     * @param type
     * @return
     */
    public ResponseResult load(ArticleHomeDto dto, Short type);

    /**
     * 加载首页
     * 优先读取缓存中的数据,如果缓存中没有再读取数据库中的数据
     *
     * @param dto
     * @param type
     * @return
     */
    public ResponseResult loadFirstPage(ArticleHomeDto dto, Short type);

    /**
     * 保存或修改app端文章
     *
     * @param dto
     * @return
     */
    ResponseResult saveArticle(ArticleDto dto);

    /**
     * 更新文章表用户行为相关的数据
     *
     * @param map
     * @return
     */
    void updateArticleByMap(Map map);


    /**
     * 加载文章行为-数据回显
     *
     * @param dto
     * @return
     */
    ResponseResult handlerLoadArticleBehavior(ArticleInfoDto dto);


    /**
     * 根据kafka中接收的用户行为数据,更新文章分值 , 更新缓存中的文章数据
     *
     * @param mess
     */
    public void updateScore(ArticleVisitStreamMess mess);
     /*分页查询 图文列表*/
    PageResponseResult newPage(StatisticsDto dto);
  /*图文统计*/
    ResponseResult queryLikesAndConllections(Integer wmUserId, Date beginDate, Date endDate);
}
